package top.malaoshi.webmvc.utils;

import top.malaoshi.util.StringUtil;

import java.lang.reflect.Method;

public class ClassUtil {

    /**
     * 将字符串的首字母转换为小写返回
     *
     * @param name
     * @return
     */
    public static String lowerFirstChar(String name) {
        if (name == null || name.trim().length() == 0)
            return name;
        char[] chars = name.toCharArray();
        if (chars[0] >= 'A' && chars[0] <= 'Z') {
            chars[0] += 32;
        }
        return new String(chars);
    }

    /**
     * 返回方法名字，名字格式如下：
     * 类全限定名.方法名|形参1的类型的全限定名_形参2的类型的全限定名_....
     * @return
     */
    public static String getMethodName(Class clazz, Method method){

        Class<?>[] parameterTypes = method.getParameterTypes();
        String[] parameterTypesStr = new String[parameterTypes.length];
        for(int i = 0;i<parameterTypes.length;i++){
            parameterTypesStr[i] = parameterTypes[i].getName();
        }
        String ret = StringUtil.append(clazz.getName()+"."+method.getName()+"|",parameterTypesStr,"_").toString();
        return ret;
    }

}
